package com.project1.client.ui;

import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RadioButton;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
import com.project1.client.Libro;


/**
 * BuscarLibro
 * Widget para agregar libros
 * @author Luis Valdeavellano
 *
 */

public class AddLibros extends Composite {
	interface MyUiBinder extends UiBinder<Widget, AddLibros> {}
	private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
	
	//Obtenemos campos del widget
	@UiField TextBox title;
	@UiField TextBox autor;
	@UiField TextBox edicion;
	@UiField TextBox ano;
	@UiField TextBox precio;
	@UiField TextBox curso;
	@UiField TextBox profesor;
	@UiField RadioButton nuevo;
	@UiField RadioButton usado;
	@UiField RadioButton desgastado;
	@UiField Label error_msg;
	private Libro nuevoLibro;
	
	
	/**
	 * Constructor.
	 */
	public AddLibros() {
		initWidget(uiBinder.createAndBindUi(this));
		nuevoLibro = new Libro();
		error_msg.addStyleName("error_msg");
		error_msg.setVisible(false);
	}
	
	public AddLibros(Libro editLibro){
		initWidget(uiBinder.createAndBindUi(this));
		
		setLibro(editLibro);
		nuevoLibro = editLibro;
	}
	
	public void setLibro(Libro editLibro){
		title.setText(editLibro.getTitulo());
		autor.setText(editLibro.getAutor());
		edicion.setText(editLibro.getEdicion());
		ano.setText(editLibro.getAnno());
		precio.setText(editLibro.getPrecio());
		curso.setText(editLibro.getCurso());
		profesor.setText(editLibro.getProfesor());
		if (editLibro.getEstado().equals("Como nuevo")) nuevo.setValue(true);
		if (editLibro.getEstado().equals("Usado, pero completo")) usado.setValue(true);
		if (editLibro.getEstado().equals("Desgastado")) desgastado.setValue(true);
	}
	
	public void showError(String error){
		error_msg.setText(error);
		error_msg.setVisible(true);
	}
	
	public void removeError(){
		error_msg.setText("");
		error_msg.setVisible(false);
	}
	
	public Libro getLibro(){
		if ((!(title.getText().isEmpty())) && (!(autor.getText().isEmpty())) && (!(edicion.getText().isEmpty())) && (!(ano.getText().isEmpty())) && (!(precio.getText().isEmpty())) && (!(curso.getText().isEmpty())) &&  (!(profesor.getText().isEmpty()))){ 
			nuevoLibro.setTitulo(title.getText());
			nuevoLibro.setAutor(autor.getText());
			nuevoLibro.setEdicion(edicion.getText());
			nuevoLibro.setAnno(ano.getText());
			nuevoLibro.setPrecio(precio.getText());
			nuevoLibro.setCurso(curso.getText());
			nuevoLibro.setProfesor(profesor.getText());
			if (nuevo.getValue()) nuevoLibro.setEstado("Como nuevo");
			if (usado.getValue()) nuevoLibro.setEstado("Usado, pero completo");
			if (desgastado.getValue()) nuevoLibro.setEstado("Desgastado");
			return nuevoLibro;
		}else{
			showError("Debe llenar todos los campos");
			return null;
		}
	}
	
}